package swing.chapter01;

import javax.swing.*;
import java.util.concurrent.TimeUnit;

/**
 * 02  存在线程安全问题, 正确的线程操作参见 SubmitLabelManipulationTask.java
 */
public class HelloLabel {

    public static void main(String[] args) throws InterruptedException {
        JFrame frame = new JFrame("Hello Swing");
        JLabel label = new JLabel("3 秒钟后会发生了变化");
        frame.add(label);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        frame.setVisible(true);

        TimeUnit.SECONDS.sleep(3);
        label.setText("...  ^_^  ...");

        /*
        直接在main现在线程中对 GUI 组件操作可能会造成冲突和死锁，因为Swing 它有自己专用的线程来接收UI事件并更新屏幕。
         */
    }
}
